---
title: 'Atlassian'
sidebarTitle: 'Atlassian'
description: 'Access the Atlassian API in 2 minutes 💨'
---

<Tabs>
  <Tab title="🚀 Quickstart">
    <Steps>
      <Step title="Create an integration">
        In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> _Configure New Integration_ -> _Atlassian_. Nango doesn't provide a test OAuth app for Atlassian yet. You’ll need to set up your own by following these [instructions](#🧑%E2%80%8D💻-oauth-app-setup). After that, make sure to add the OAuth client ID, secret, and scopes in the integration settings in Nango.
      </Step>
      <Step title="Authorize Atlassian">
        Go to [Connections](https://app.nango.dev/dev/connections) -> _Add Test Connection_ -> _Authorize_, then log in to Atlassian. Later, you'll let your users do the same directly from your app.
      </Step>
      <Step title="Call the Atlassian API">
        Let's make your first request to the Atlassian API (fetch accessible resources). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):
        <Tabs>
            <Tab title="cURL">
                ```bash
                curl "https://api.nango.dev/proxy/oauth/token/accessible-resources" \
                  -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
                  -H "Provider-Config-Key: <INTEGRATION-ID>" \
                  -H "Connection-Id: <CONNECTION-ID>"
                ```
            </Tab>

            <Tab title="Node">

            Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

            ```typescript
            import { Nango } from '@nangohq/node';

            const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

            const res = await nango.get({
                endpoint: '/oauth/token/accessible-resources',
                providerConfigKey: '<INTEGRATION-ID>',
                connectionId: '<CONNECTION-ID>'
            });

            console.log(JSON.stringify(res.data, null, 2));
            ```
            </Tab>

        </Tabs>

        Or fetch credentials dynamically via the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

      </Step>
    </Steps>

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

    <Tip>
    Next step: [Embed the auth flow](/getting-started/quickstart/embed-in-your-app) in your app to let your users connect their Atlassian accounts.
    </Tip>
  </Tab>
  <Tab title="🧑‍💻 OAuth app setup">
    <Steps>
      <Step title="Create an Atlassian developer account">
        If you don't already have one, sign up for an [Atlassian developer account](https://id.atlassian.com/signup/).
      </Step>
      <Step title="Create a new OAuth 2.0 (3LO) app">
        1. Go to the [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/).
        2. Click **Create** and select **OAuth 2.0 integration**.
        3. Enter a name, agree to Atlassian's developer terms by checking the agreement checkbox for your app and click **Create**.
        4. Your app will be created and you'll be taken to the app management page.
      </Step>
      <Step title="Configure OAuth 2.0 (3LO)">
        1. In the left sidebar, select **Authorization**.
        2. Next to OAuth 2.0 (3LO), click **Add**.
        3. Enter `https://api.nango.dev/oauth/callback` as the **Callback URL**.
        4. Click **Save Changes** to save your changes.
      </Step>
      <Step title="Add API permissions">
        1. In the left sidebar, select **Permissions**.
        2. Find the APIs you want to use (Jira, Confluence, etc.) and click **Add**, then click **Configure**.
        3. Click **Edit Scopes** then select the [scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/#scopes) your application requires. For reference, see our [Common Scopes](#common-scopes) table below.
        4. Click **Save Changes** to save your changes.
      </Step>
      <Step title="Obtain your client credentials">
        1. In the left sidebar, select **Settings**.
        2. Copy both the **Client ID** and **Secret** by clicking the copy buttons next to them, as you'll need them when configuring your integration in Nango.
      </Step>
      <Step title="Make your app available to users">
        1. In the left sidebar, select **Distribution**.
        2. In **Distribution controls**, click the **Edit** button, select the **Sharing** radio button, enter a **Privacy Policy URL** and then click the **Save changes** button.
       <Note>By default, your app is private and can only be used by you. Making it public allows other users to authorize your app.</Note>
      </Step>
      <Step title="Next">
        Follow the [_Quickstart_](/getting-started/quickstart).
      </Step>
    </Steps>

    ## Common Scopes

    | Scope | Description |
    | ----- | ----------- |
    | `read:jira-user` | Read user information |
    | `read:jira-work` | Read Jira work items (issues, projects, etc.) |
    | `write:jira-work` | Create and update Jira work items |
    | `delete:jira-work` | Delete issues |
    | `manage:jira-project` | Manage project settings |
    | `manage:jira-configuration` | Manage Jira instance settings |
    | `read:confluence-content.summary` | Read Confluence content summaries |
    | `read:confluence-content.all` | Read all Confluence content |
    | `write:confluence-content` | Create and update Confluence content |
    | `offline_access` | Access to refresh tokens for offline access |

  </Tab>
  <Tab title="🔗 Useful links">
    | Topic | Links |
    | - | - |
    | General | [Atlassian Developer Portal](https://developer.atlassian.com/) |
    | | [Atlassian Developer Console](https://developer.atlassian.com/console/myapps/) |
    | Developer | [Registering an OAuth 2.0 (3LO) App](https://developer.atlassian.com/console/myapps/) |
    | | [OAuth-related docs](https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps) |
    | | [List of Jira scopes](https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/) |
    | | [List of Confluence scopes](https://developer.atlassian.com/cloud/confluence/scopes-for-oauth-2-3LO-and-forge-apps/) |
    | | [Jira Cloud Rest API](https://developer.atlassian.com/cloud/jira/software/rest/intro/#introduction) |
    | | [Confluence Cloud Rest API](https://developer.atlassian.com/cloud/confluence/rest/v1/intro/#using) |
    | | [Distributing OAuth 2.0 (3LO) Apps](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#distributing-your-oauth-2-0--3lo--apps) |

    <Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/atlassian.mdx)</Note>
  </Tab>
  <Tab title="🚨 API gotchas">
    - Refresh tokens will expire after 365 days of non use and will expire by 90 days if the resource owner is inactive for 90 days. Make sure you call `nango.getConnection()` at least every 365 days to trigger a refresh. See reference [here](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#how-do-i-get-a-new-access-token--if-my-access-token-expires-or-is-revoked-).
    - When using the proxy for Atlassian, it is important to know that Jira apps will use `/jira/{cloudid}/{api}` for Jira apps and `/confluence/{cloudid}/{api}` for Confluence apps.

    <Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/atlassian.mdx)</Note>
  </Tab>
</Tabs>

<Info>
    Questions? Join us in the [Slack community](https://nango.dev/slack).
</Info>
